package com.elm.util;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class JwtUtil {
    // 密钥（实际项目中应放在配置文件）
    private static final String SECRET_KEY = "your-secret-key";
    // 过期时间（例如2小时）
    private static final long EXPIRATION_TIME = 7200000;

    // 生成Token
    public static String generateToken(String userId, String userType) {
        Map<String, Object> claims = new HashMap<>();
        claims.put("userId", userId);
        claims.put("userType", userType); // 存储用户类型（admin/boss/staff/user）

        return Jwts.builder()
                .setClaims(claims)
                .setExpiration(new Date(System.currentTimeMillis() + EXPIRATION_TIME))
                .signWith(SignatureAlgorithm.HS256, SECRET_KEY)
                .compact();
    }

    // 解析Token获取用户信息
    public static Claims parseToken(String token) {
        return Jwts.parserBuilder()
                .setSigningKey(SECRET_KEY)
                .build()
                .parseClaimsJws(token)
                .getBody();
    }

    // 从Token中获取userId
    public static String getUserIdFromToken(String token) {
        return parseToken(token).get("userId", String.class);
    }

    // 从Token中获取userType
    public static String getUserTypeFromToken(String token) {
        return parseToken(token).get("userType", String.class);
    }
}